The IBusCandidatePopup can get 'stuck' in an active, visible state if
it is on-screen at the point when the input method is changed to a method
that doesn't use such popup (e.g. regular English).
Force the candidate popup to close when the engine is changed.
It will reappear (via regular lookup table update signal) if/when it is
next required.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6717
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2774>
const { Gio, GLib, IBus, Meta, Shell } = imports.gi;
const Signals = imports.misc.signals;
+const BoxPointer = imports.ui.boxpointer;
const IBusCandidatePopup = imports.ui.ibusCandidatePopup;
return;
this._currentEngineName = engineName;
+ this._candidatePopup.close(BoxPointer.PopupAnimation.NONE);
if (this._registerPropertiesId != 0)
return;